import request from '@/utils/request'

/**
 * 创建分类
 * @param {Object} data - 分类数据
 * @param {string} data.name - 分类名称
 * @param {string} data.description - 分类描述（可选）
 * @param {number} data.parent_id - 父分类ID（可选）
 * @param {number} data.sort_order - 排序顺序（可选）
 * @returns {Promise}
 */
export function createCategory(data) {
  return request.post('/api/categories', data)
}

/**
 * 更新分类
 * @param {number} categoryId - 分类ID
 * @param {Object} data - 分类数据
 * @param {string} data.name - 分类名称（可选）
 * @param {string} data.description - 分类描述（可选）
 * @param {number} data.parent_id - 父分类ID（可选）
 * @param {number} data.sort_order - 排序顺序（可选）
 * @param {number} data.status - 分类状态：0-禁用，1-启用（可选）
 * @returns {Promise}
 */
export function updateCategory(categoryId, data) {
  return request.put(`/api/categories/${categoryId}`, data)
}

/**
 * 删除分类
 * @param {number} categoryId - 分类ID
 * @param {boolean} force - 是否强制删除（物理删除），默认false（软删除）
 * @returns {Promise}
 */
export function deleteCategory(categoryId, force = false) {
  return request.delete(`/api/categories/${categoryId}?force=${force ? 1 : 0}`)
}

/**
 * 获取分类详情
 * @param {number} categoryId - 分类ID
 * @returns {Promise}
 */
export function getCategoryDetail(categoryId) {
  return request.get(`/api/categories/${categoryId}`)
}

/**
 * 获取分类树
 * @param {Object} params - 查询参数
 * @param {number} params.status - 分类状态筛选：0-禁用，1-启用
 * @returns {Promise}
 */
export function getCategoriesTree(params = {}) {
  return request.get('/api/categories/tree', params)
}
